import { defineStore } from 'pinia'
import { ref } from 'vue'

export const useAppStore = defineStore('app', () => {
  // 侧边栏状态
  const sidebarCollapsed = ref(false)
  
  // 主题模式
  const theme = ref(localStorage.getItem('theme') || 'light')
  
  // 加载状态
  const loading = ref(false)
  
  // 面包屑导航
  const breadcrumbs = ref([])

  // 方法
  /**
   * 切换侧边栏折叠状态
   */
  function toggleSidebar() {
    sidebarCollapsed.value = !sidebarCollapsed.value
  }

  /**
   * 设置侧边栏状态
   * @param {boolean} collapsed - 是否折叠
   */
  function setSidebarCollapsed(collapsed) {
    sidebarCollapsed.value = collapsed
  }

  /**
   * 切换主题
   */
  function toggleTheme() {
    theme.value = theme.value === 'light' ? 'dark' : 'light'
    localStorage.setItem('theme', theme.value)
    // 这里可以添加主题切换的具体实现
    document.documentElement.setAttribute('data-theme', theme.value)
  }

  /**
   * 设置主题
   * @param {string} newTheme - 主题名称
   */
  function setTheme(newTheme) {
    theme.value = newTheme
    localStorage.setItem('theme', newTheme)
    document.documentElement.setAttribute('data-theme', newTheme)
  }

  /**
   * 设置加载状态
   * @param {boolean} status - 加载状态
   */
  function setLoading(status) {
    loading.value = status
  }

  /**
   * 设置面包屑
   * @param {Array} items - 面包屑项目
   */
  function setBreadcrumbs(items) {
    breadcrumbs.value = items
  }

  /**
   * 初始化应用设置
   */
  function initializeApp() {
    // 初始化主题
    document.documentElement.setAttribute('data-theme', theme.value)
    
    // 这里可以添加其他初始化逻辑
  }

  return {
    // 状态
    sidebarCollapsed,
    theme,
    loading,
    breadcrumbs,
    // 方法
    toggleSidebar,
    setSidebarCollapsed,
    toggleTheme,
    setTheme,
    setLoading,
    setBreadcrumbs,
    initializeApp
  }
}) 